When devices are removed from a SAS/SATA topology, there will be a lot of processing to handle the removed device. In a storage topology, devices may be disconnected and added back in a short period of time. In such cases, to avoid unnecessary processing of devices, controllers may include Device Missing Delay (DMD) timers. If a device goes missing and comes back within the DMD period the device would not be considered removed; instead minimal corrective action would be taken and normal operation may continue.
The DMD feature is essential for storage products and is necessary to handle common error scenarios. As the topology size increases the system resources to maintain DMD timers in the controller also increases. At the same time the computation time for handling DMD timers also increases. Therefore, as topology size increases, the solution cost increases and controller performance decreases.
Furthermore, when a device comes back within the DMD but, due to controller processing delay, the device may continue to be considered missing. The sequence of operation in the controller becomes very important in deciding the proper functionality of the DMD feature, hence making it very implementation specific. Since DMDs are handled in the controller, only one delay value is used for the entire topology, therefore it is not possible to set different DMD values for different parts of topology.
Consequently, it would be advantageous if an apparatus existed that is suitable for distributing the load of multiple DMD timers throughout a topology.